<?php

namespace app\common\services;

use api\oauth\WeChat;
use app\exception\ApiException;

class OauthService
{
    // 微信小程序
    const TYPE_WECHAT_MINI = 'wechat_mini';
    // 微信APP开放应用
    const TYPE_WECHAT_APP = 'wechat_app';
    // 微信公众号
    const TYPE_WECHAT_GZH = 'wechat_gzh';

    /**
     * 加载微信信息
     *
     * @param int $itemsId 企业ID
     * @param string $type mini 小程序 app APP gzh 公众号
     * @return WeChat
     */
    public static function wechat(int $itemsId, string $type = self::TYPE_WECHAT_MINI): WeChat
    {
        $config = [];
        if ($type == self::TYPE_WECHAT_MINI) {
            $config = web_config($itemsId, 'program.wechat.mini');
        } elseif ($type == self::TYPE_WECHAT_APP) {
            $config = web_config($itemsId, 'program.wechat.app');
        } elseif ($type == self::TYPE_WECHAT_GZH) {
            $config = web_config($itemsId, 'program.wechat.gzh');
        }
        if (empty($config) || !is_array($config)) {
            throw new ApiException('参数未配置');
        }
        return new WeChat($config);
    }
}